<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <button>按钮</button>

  <script>
    // window也继承自EventTarget
    // EventTarget是一个DOM接口，主要用于添加、删除、派发Event事件
    var btnEl = document.querySelector("button")

    // 1.移除监听函数的过程 创建一个函数对象，添加与删除的一定是同一个函数对象
    // var foo = function() {
    //   console.log("监听到按钮的点击")
    // }
    // btnEl.addEventListener("click", foo)

    // // 需求: 5s后, 移除事件监听
    // setTimeout(function() {
    //   btnEl.removeEventListener("click", foo)
    // }, 5000)


    // EventTarget就可以实现类似于事件总线的效果
    // 不存在111事件
    window.addEventListener("111", function () {
      console.log("监听到111事件")
    })
    // 派发111事件，就可以监听到
    setTimeout(function () {
      window.dispatchEvent(new Event("111"))
    }, 5000)



  </script>

</body>

</html>